package com.zd.bms.service;

import java.util.Map;

import com.zd.bms.bean.vo.req.OrderDetailListReqVo;
import com.zd.bms.bean.vo.req.OrderListReqVo;
import com.zd.common.bean.model.BmsUser;
import com.zd.common.bean.model.TicketOrderDetail;
import com.zd.common.dao.common.Page;
import com.zd.common.service.IBaseService;

public interface ITicketOrderDetailService extends IBaseService<TicketOrderDetail>  {
	
	
	/**
	 * 根据条件给票务做分页查询
	 * @param req  票务查询请求类
	 * @return
	 * @throws Exception
	 */
	Page<TicketOrderDetail> pageTicketOrderDetail(OrderDetailListReqVo req)throws Exception;
	
	/**
	 * 门票退票
	 * @param orderDetailIdList
	 * @param bmsUser
	 * @return
	 * @throws Exception
	 */
	Map<String, String> refundTicket(String orderDetailIdList,BmsUser bmsUser)throws Exception;
	
	/**
	 * 门票打印
	 * @param checkCode
	 * @param bmsUser
	 * @return
	 * @throws Exception
	 */
	Map<String, Object> printTicket(String checkCode,Integer orderDetailId,BmsUser bmsUser)throws Exception;
	
	/**
	 * 退票统计
	 * @param req
	 * @param bmsUser
	 * @return
	 * @throws Exception
	 */
	Map<String, Object> refundStatistics(OrderListReqVo req , BmsUser bmsUser)throws Exception;
	
	/**
	 * 批量生成二维码
	 * @param req
	 * @param bmsUser
	 * @return
	 * @throws Exception
	 */
	Map<String, Object> batchQrcode( BmsUser bmsUser, Integer qrcodeNum)throws Exception;
	

	/**
	 * 验票 ：有身份证就用身份证验票，有票码就用票码验票
	 * @param orderDetailId 门票ID
	 * @param checkCode 票码
	 * @param IdNo 身份证号
	 * @return
	 * @throws Exception
	 */
	Map<String, Object> inspectTicket(Integer orderId, Integer orderDetailId,String checkCode ,String appId ,String IdNo)throws Exception;
	
	/**
	 * 根据二维码的信息找去checkCode 以及售票员信息
	 * @param uuid
	 * @return
	 * @throws Exception
	 */
	Map<String, Object> getCheckCode(String uuid , BmsUser bmsUser)throws Exception;
}
